package com.cgnpc.scp.manager.service;

import com.cgnpc.cud.core.domain.AjaxResult;
import com.cgnpc.scp.common.bean.MyPageResult;
import com.cgnpc.scp.common.pojo.UserInfo;
import com.cgnpc.scp.manager.mybatis.entity.ParameterConfig;

import java.util.List;
import java.util.Locale;

public interface IParameterConfigService {

    /**********************************
     * 用途说明: 参数配置---保存或修改
     * 参数说明: UserInfo loginUserInfo, Locale reqLocale, List<T> reqEntityList
     * 返回值说明: Object
     ***********************************/
    <T extends ParameterConfig> AjaxResult saveOrUpdate(UserInfo loginUserInfo, Locale reqLocale, List<T> reqEntityList);

    /**********************************
     * 用途说明: 参数配置---分页查询
     * 参数说明: T reqEntity
     * 返回值说明: MyPageResult
     ***********************************/
    <T extends ParameterConfig> MyPageResult<T> loadByPaging(T reqEntity);

    /**********************************
     * 用途说明: 参数配置---删除
     * 参数说明: UserInfo loginUserInfo, Locale reqLocale, ParameterConfig reqParameterConfig
     * 返回值说明: AjaxResult
     ***********************************/
    AjaxResult del(UserInfo loginUserInfo, Locale reqLocale, ParameterConfig reqParameterConfig);

    /**********************************
     * 用途说明: 参数配置---查询指定的参数配置
     * 参数说明: ParameterConfig reqParameterConfig
     * 返回值说明: Object
     ***********************************/
    List<ParameterConfig> queryByParamKey(ParameterConfig reqParameterConfig);

}
